package top.tangyh.basic.spring_mvc.service.system;
import top.tangyh.basic.spring_mvc.entity.BaseOrg;
import top.tangyh.basic.spring_mvc.service.SuperService;
import top.tangyh.basic.spring_mvc.vo.query.system.BaseOrgPageQuery;
import top.tangyh.basic.spring_mvc.vo.result.system.BaseOrgResultVO;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
 * <p>
 * 业务接口
 * 组织
 * </p>
 *
 * @author CJ
 * @date 2021-10-18
 */
public interface BaseOrgService extends SuperService<Long, BaseOrg> {

    /**
     * 检测机构名称是否存在
     * @param name     机构名称
     * @param parentId 父ID
     * @param id       机构id
     * @return
     */
    boolean check(String name, Long parentId, Long id);


    /**
     * 查询机构
     *
     * @param query 参数
     * @return 机构树
     */
    List<BaseOrgResultVO> list(BaseOrgPageQuery query);

    /**
     * 根据部门id，递归查询部门的上级公司id
     * @param deptId 部门id
     * @return
     */
    BaseOrg getCompanyByDeptId(Long deptId);
}
